/*
 * Es el jugador grafico, el cual contiene al jugador logico
 */
package gui;

import java.awt.*;
import javax.swing.*;
import logic.Jugador;

/**
 *
 * @author Miguel Boscan
 */
public class PanelJugador_ extends JPanel {
    Jugador jugador;            // Jugador Logico
    JPanel PanelCamiseta;       // Contiene la imagen de la camiseta del equipo (Local o Visitante)
    JLabel LabelBalon;          // Contiene la imagen del balon
    JLabel LabelInformacion;    // Contiene Las estadisticas del jugador al final del partido
    JLabel LabelNumero;         // Contiene el numero del jugador
    JButton boton;
    
    /**
     * Constructor del Panel Jugador
     * @param jugador recibe el jugador logico
     */
    public PanelJugador_(Jugador jugador,VentanaEquipos oyente){
        this.jugador=jugador;
        initComponents(oyente); //  Hace llamado al metodo que inicializa todos los componentes del panel
        this.LabelBalon.setVisible(false); // El balon Inicialmente esta oculto
    }
    
    /**
     * Inicializa todos los componentes del panel
     */
    public void initComponents(VentanaEquipos oyente){
        this.LabelBalon = new JLabel();
        this.LabelNumero = new JLabel();
        this.LabelInformacion = new JLabel();
        this.boton=new JButton();
        
        System.out.println(this.jugador +"jugador");
        System.out.println(this.jugador.getEquipo() +"equipo");
        // Si el jugador es Local tendra camiseta de Local
        if (this.jugador.getEquipo() == 0){
            this.PanelCamiseta = new ImagenPanel("/images/camisetaLocal.png");
            this.PanelCamiseta.setBounds(0, 0, 25, 25);
            this.LabelBalon.setBounds(25, 0, 15, 15);
            this.boton.setBounds(25, 15, 10, 10);
            this.LabelInformacion.setBounds(0, 25, 40, 15);
        }
        // Si el jugador en Visitante tendra camiseta de visitante
        else{
            this.PanelCamiseta = new ImagenPanel("/images/camisetaVisitante.png");
            this.PanelCamiseta.setBounds(15, 0, 25, 25);
            this.LabelBalon.setBounds(0, 0, 15, 15);
            this.boton.setBounds(0, 15, 10, 10);
            this.LabelInformacion.setBounds(0, 25, 40, 15);
        }
        
        LabelInformacion.setBackground(new Color(0,0,0,0));
       LabelInformacion.setHorizontalAlignment(SwingConstants.CENTER);
       LabelInformacion.setFont(new Font("Tahoma", 1, 12));
       LabelInformacion.setForeground(new Color(0, 0, 0));
        this.LabelNumero.setForeground(Color.WHITE);
        this.setMaximumSize(new java.awt.Dimension(40, 40));
        this.setMinimumSize(new java.awt.Dimension(40, 40));
        // Se le asigna la imagen del balon al LabelBalon
        this.LabelBalon.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/balon.jpg")));
        this.PanelCamiseta.setLayout(null);
        this.LabelNumero.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        this.LabelNumero.setText(this.jugador.getNroDorsal());
        this.LabelNumero.setBounds(0, 0, 25, 25);
        this.setLayout(null);
        
        boton.setBackground(Color.black);
        boton.addActionListener(oyente);
        boton.setActionCommand(""+jugador.getEquipo()+" "+jugador.getNroDorsal()+" "+jugador.getPosicionPreferida());
        
        // Se añaden los componentes al PanelJugador 
        this.add(PanelCamiseta);
        this.add(LabelBalon);
        this.add(LabelInformacion);
        this.add(boton);
        this.PanelCamiseta.add(LabelNumero);
        
    }
    
    public void RefrescarJugador(){
        this.removeAll();
        this.add(PanelCamiseta);
        this.add(LabelBalon);
        this.add(LabelInformacion);
        this.add(boton);
        this.PanelCamiseta.add(LabelNumero);
    }
    
    /**
     * Retorna el Label Balon 
     */
    public JLabel getLabelBalon(){
        return this.LabelBalon;
    }
    
    /**
     * Retorna el Label Informacion 
     */
    public JLabel getLabelInformcion() {
        return this.LabelInformacion;
    }

    /**
     * Retorna el Label Numero 
     */
    public JLabel getLabelNumero() {
        return this.LabelNumero;
    }

    /**
     * Retorna el Panel Camiseta
     */
    public JPanel getPanelCamiseta() {
        return this.PanelCamiseta;
    }
    
    /**
     * Retorna el Jugador logico 
     */
    public Jugador getJugadorLogico(){
        return this.jugador;
    }
    
    /**
     * Se encarga de establecer la informacion que se mostrara en el Label informacion al finalizar el juego
     * @param str recibe la informacion
     */
    public void setEstadistica(String str){
        this.LabelInformacion.setText(str);
        this.LabelInformacion.setVisible(false);
        this.LabelInformacion.setVisible(true);
    }
    
    /**
     * Cambia el jugador logico por un nuevo jugador logico recibido
     * @param jugador recibe el nuevo jugador logico
     */
    public void cambiarJugador(Jugador jugador){
        this.jugador = jugador;
        this.LabelNumero.setText(this.jugador.getNroDorsal());
    }
    
    /**
     * Oculta el balon
     */
    public void ocultarBalon(){
        this.LabelBalon.setVisible(false);
    }
    
    /**
     * Muestra el balon
     */
    public void mostrarBalon(){
        this.LabelBalon.setVisible(true);
    }
    
    public void ocultarBoton(){
        this.boton.setVisible(false);
    }
    
    public void ocultarInfo(){
        this.LabelInformacion.setVisible(false);
    }
}
